﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Windows.Forms;

namespace WalutyNBP
{
    public partial class WalutyNBP : Form
    {
        public WalutyNBP()
        {
            InitializeComponent();
            dataGridTextBoxColumn1.Width = 0;
            dataGridTextBoxColumn2.Width = 0;
            dataGridTextBoxColumn3.Width = 0;
            dataGridTextBoxColumn4.Width = 0;
            dataGridTextBoxColumn5.Width = 0;
            dataGridTextBoxColumn6.Width = 0;
        }

        List<DataRow> wiersz = new List<DataRow>();

        private void menuItem1_Click(object sender, EventArgs e)
        {
            int ile = 0;
            label1.Text = "";
            Waluty.Rows.Clear();

            if (Preferences.popularne && (Preferences.popk || Preferences.popsp))
            {
                Xml C = new Xml(3);
                if (C.Test())
                {
                    if (Preferences.aktualne) C.Data();
                    else C.DataArch();
                    ile = C.Count();
                    if (ile == 0)
                    {
                        label1.Visible = true;
                        label1.Text = "Brak tabeli dla tego dnia.\nTo dzień wolny od pracy";
                    }
                    else
                    {
                        label1.Visible = false;
                        dataGridTextBoxColumn1.Width = 0;
                        dataGridTextBoxColumn6.Width = 0;
                        TabC[] Tabela = new TabC[ile];
                        C.PraserC(ref Tabela);
                        for (int i = 0; i < ile; i++)
                        {
                            wiersz.Add(Waluty.NewRow());
                            if (Preferences.w_nazw_w)
                            {
                                wiersz[i][1] = Tabela[i].Nazwa();
                                dataGridTextBoxColumn2.Width = 100;
                            }
                            else dataGridTextBoxColumn2.Width = 0;
                            if (Preferences.w_sym)
                            {
                                if (Preferences.w_przel)
                                {
                                    wiersz[i][2] = Tabela[i].Przelicznik() + " " + Tabela[i].Kod();
                                    dataGridTextBoxColumn3.Width = 55;
                                }
                                else
                                {
                                    wiersz[i][2] = Tabela[i].Kod();
                                    dataGridTextBoxColumn3.Width = 30;

                                }
                            }
                            else dataGridTextBoxColumn3.Width = 0;
                            if (Preferences.popk)
                            {
                                wiersz[i][4] = Tabela[i].Kurs_K();
                                dataGridTextBoxColumn5.Width = 45;

                            }
                            else dataGridTextBoxColumn5.Width = 0;
                            if (Preferences.popsp)
                            {
                                wiersz[i][3] = Tabela[i].Kurs_S();
                                dataGridTextBoxColumn4.Width = 59;

                            }
                            else dataGridTextBoxColumn4.Width = 0;
                            Waluty.Rows.Add(wiersz[i]);
                        }
                    }
                    WalutyNBP forma = new WalutyNBP();
                    forma.Text = C.data;
                }
                else label1.Text = "Brak połączenia z Internetem\nlub strona NBP jest niedostępna";
            }

            if (Preferences.podstawowe)
            {
                Xml A = new Xml(1);
                if (A.Test())
                {
                    if (Preferences.aktualne) A.Data();
                    else A.DataArch();
                    ile = A.Count();
                    if (ile == 0)
                    {
                        label1.Visible = true;
                        label1.Text = "Brak tabeli dla tego dnia.\nTo dzień wolny od pracy";
                    }
                    else
                    {
                        label1.Visible = false;
                        dataGridTextBoxColumn1.Width = 0;
                        dataGridTextBoxColumn4.Width = 0;
                        dataGridTextBoxColumn5.Width = 0;
                        TabA[] Tabela = new TabA[ile];
                        A.PraserA(ref Tabela);
                        for (int i = 0; i < ile; i++)
                        {
                            wiersz.Add(Waluty.NewRow());
                            if (Preferences.w_nazw_w)
                            {
                                wiersz[i][1] = Tabela[i].Nazwa();
                                dataGridTextBoxColumn2.Width = 117;
                            }
                            else dataGridTextBoxColumn2.Width = 0;
                            if (Preferences.w_sym)
                            {
                                if (Preferences.w_przel)
                                {
                                    wiersz[i][2] = Tabela[i].Przelicznik() + " " + Tabela[i].Kod();
                                    dataGridTextBoxColumn3.Width = 65;
                                }
                                else
                                {
                                    wiersz[i][2] = Tabela[i].Kod();
                                    dataGridTextBoxColumn3.Width = 30;

                                }
                            }
                            else dataGridTextBoxColumn3.Width = 0;
                            wiersz[i][5] = Tabela[i].Kurs_S();
                            dataGridTextBoxColumn6.Width = 48;
                            Waluty.Rows.Add(wiersz[i]);
                        }
                    }
                }
                else label1.Text = "Brak połączenia z Internetem\nlub strona NBP jest niedostępna";
            }
            if (Preferences.pozostale)
            {
                Xml B = new Xml(2);
                if (B.Test())
                {
                    if (Preferences.aktualne) B.Data();
                    else B.DataArch();
                    ile = B.Count();
                    if (ile == 0)
                    {
                        label1.Visible = true;
                        label1.Text = "Brak tabeli dla tego dnia.\nTo dzień wolny od pracy";
                    }
                    else
                    {
                        label1.Visible = false;
                        dataGridTextBoxColumn4.Width = 0;
                        dataGridTextBoxColumn5.Width = 0;
                        TabB[] Tabela = new TabB[ile];
                        B.PraserB(ref Tabela);
                        for (int i = 0; i < ile; i++)
                        {
                            wiersz.Add(Waluty.NewRow());
                            if (Preferences.w_nazw_k)
                            {
                                wiersz[i][0] = Tabela[i].Nazwa_K();
                                dataGridTextBoxColumn1.Width = 180;
                            }
                            else dataGridTextBoxColumn1.Width = 0;
                            if (Preferences.w_nazw_w)
                            {
                                wiersz[i][1] = Tabela[i].Nazwa();
                                dataGridTextBoxColumn2.Width = 75;
                            }
                            else dataGridTextBoxColumn2.Width = 0;
                            if (Preferences.w_sym)
                            {
                                if (Preferences.w_przel)
                                {
                                    wiersz[i][2] = Tabela[i].Przelicznik() + " " + Tabela[i].Kod();
                                    dataGridTextBoxColumn3.Width = 70;
                                }
                                else
                                {
                                    wiersz[i][2] = Tabela[i].Kod();
                                    dataGridTextBoxColumn3.Width = 30;

                                }
                            }
                            else dataGridTextBoxColumn3.Width = 0;
                            wiersz[i][5] = Tabela[i].Kurs_S();
                            dataGridTextBoxColumn6.Width = 47;
                            Waluty.Rows.Add(wiersz[i]);
                        }
                    }
                }
                else label1.Text = "Brak połączenia z Internetem\nlub strona NBP jest niedostępna";
            }
            if (Preferences.rozliczeniowe)
            {
                Xml H = new Xml(4);
                if (H.Test())
                {
                    if (Preferences.aktualne) H.Data();
                    else H.DataArch();
                    ile = H.Count();
                    if (ile == 0)
                    {
                        label1.Visible = true;
                        label1.Text = "Brak tabeli dla tego dnia.\nTo dzień wolny od pracy";
                    }
                    else
                    {
                        label1.Visible = false;
                        dataGridTextBoxColumn4.Width = 0;
                        dataGridTextBoxColumn5.Width = 0;
                        TabH[] Tabela = new TabH[ile];
                        H.PraserH(ref Tabela);
                        for (int i = 0; i < ile; i++)
                        {
                            wiersz.Add(Waluty.NewRow());
                            if (Preferences.w_nazw_k)
                            {
                                wiersz[i][0] = Tabela[i].Nazwa_K();
                                dataGridTextBoxColumn1.Width = 84;
                            }
                            else dataGridTextBoxColumn1.Width = 0;
                            if (Preferences.w_nazw_w)
                            {
                                if (Preferences.w_przel)
                                {
                                    wiersz[i][1] = Tabela[i].Przelicznik() + " " + Tabela[i].Nazwa();
                                    dataGridTextBoxColumn2.Width = 77;
                                }
                                else
                                {
                                    wiersz[i][1] = Tabela[i].Nazwa();
                                    dataGridTextBoxColumn2.Width = 75;
                                }
                            }
                            else dataGridTextBoxColumn2.Width = 0;
                            if (Preferences.w_sym)
                            {
                                wiersz[i][2] = Tabela[i].Sym();
                                dataGridTextBoxColumn3.Width = 30;
                            }
                            else dataGridTextBoxColumn3.Width = 0;

                            if (Preferences.rs)
                            {
                                wiersz[i][3] = Tabela[i].Kurs_Sp();
                                dataGridTextBoxColumn4.Width = 56;
                            }
                            else dataGridTextBoxColumn4.Width = 0;

                            if (Preferences.rk)
                            {
                                wiersz[i][4] = Tabela[i].Kurs_K();
                                dataGridTextBoxColumn5.Width = 48;
                            }
                            else dataGridTextBoxColumn5.Width = 0;

                            if (Preferences.rsr)
                            {
                                wiersz[i][5] = Tabela[i].Kurs_S();
                                dataGridTextBoxColumn6.Width = 48;
                            }
                            else dataGridTextBoxColumn6.Width = 0;
                            Waluty.Rows.Add(wiersz[i]);
                        }
                    }
                }
                else label1.Text = "Brak połączenia z Internetem\nlub strona NBP jest niedostępna";
            }
        }

        private void menuItem3_Click(object sender, EventArgs e)
        {
            Ustawienia Okno = new Ustawienia();
            Okno.Show();
        }

        private void menuItem6_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void GridTabela_Click(object sender, EventArgs e)
        {
            GridTabela.Select(GridTabela.CurrentRowIndex);
        }

        private void menuItem4_Click(object sender, EventArgs e)
        {
            About about = new About();
            about.Show();
        }

        private void menuItem5_Click(object sender, EventArgs e)
        {
            Help help = new Help();
            help.Show();
        }
    }
}